package doc

import "fmt"

// 切片
func useArray() {
	arr := [...]int{0, 1, 2, 3, 4, 5, 6}
	fmt.Println("显示切片信息 arr[2,4]第三个到第五个元素把切片切成新的切片", arr[2:4])
}

// map 字典的了解
func useMapDict() {
	mm := map[string]string{
		"name":    "kei",
		"age":     "100岁",
		"adderss": "小珊瑚",
	}
	// 显示
	fmt.Println(mm)         // 显示map信息,类似字典一样
	fmt.Println(mm["name"]) // 显示指定key的map值信息

	for a, b := range mm {
		fmt.Println(a, b)
	}
	// 添加数据
	fmt.Println("添加数据")
	mm["haha"] = "hekk"
	fmt.Println(mm) // 这里会把key安装首字母排序显示
	// 删除数据
	fmt.Println("删除数据")
	delete(mm, "name")
	fmt.Println(mm)
}

// 对象和结构体

// 定义树结构体
type treeNode struct {
	value       int
	left, right *treeNode
}

func createTreeNode(value int) *treeNode {
	return &treeNode{value: value}
}

func useTreeNode() {
	var root treeNode
	root = treeNode{value: 3}
	root.left = &treeNode{}
	root.right = &treeNode{5, nil, nil}
	//root.right.left = new(treeNode)
	root.right.left = createTreeNode(6)

	fmt.Println(root)
	fmt.Println(root.right.value)
	fmt.Println(root.right.left.value)
}
